package model

import (
	"time"
	"user_srv/basic/config"
)

type UserWallet struct { //用户钱包表
	Id            uint      `gorm:"column:id;type:bigint;comment:资产ID;primaryKey;not null;" json:"id"`                            // 资产ID
	UserId        uint      `gorm:"column:user_id;type:bigint;comment:用户ID;not null;" json:"user_id"`                             // 用户ID
	GoldCoins     uint      `gorm:"column:gold_coins;type:int;comment:金币余额;default:0;" json:"gold_coins"`                         // 金币余额
	Diamonds      uint      `gorm:"column:diamonds;type:int;comment:钻石余额;default:0;" json:"diamonds"`                             // 钻石余额
	Points        uint      `gorm:"column:points;type:int;comment:积分余额;default:0;" json:"points"`                                 // 积分余额
	TotalRecharge float64   `gorm:"column:total_recharge;type:decimal(10, 2);comment:累计充值金额;default:0.00;" json:"total_recharge"` // 累计充值金额
	TotalSpent    float64   `gorm:"column:total_spent;type:decimal(10, 2);comment:累计消费金额;default:0.00;" json:"total_spent"`       // 累计消费金额
	CreateTime    time.Time `gorm:"column:create_time;type:datetime;default:CURRENT_TIMESTAMP;" json:"create_time"`
	UpdateTime    time.Time `gorm:"column:update_time;type:datetime;default:CURRENT_TIMESTAMP;" json:"update_time"`
}

func (uw *UserWallet) TableName() string {
	return "user_wallet"
}
func (uw *UserWallet) GetUserWallet(where *UserWallet) error { //获取用户钱包信息
	return config.DB.Where(where).Limit(config.Limit).Find(&uw).Error
}
func (uw *UserWallet) UpdateUserWallet(where *UserWallet) error { //更新用户钱包
	return config.DB.Where(where).Updates(&uw).Error
}
